Module:Infobox/Algorithme/Bac à sable

Une page de Wikipédia, l'encyclopédie libre.

 Documentation[voir] [modifier] [historique] [purger]

Cette page définit un module d'infobox.


local general = require "Module:Infobox/Fonctions"
local localdata = require "Module:Infobox/Localdata"
local wikidata = require "Module:Wikidata"

local p = {}

-- Retourne l'image ou sinon la vidéo
function p.mainimage_ou_video()
	local wdimage = {entity = item, property = 'P18', showsource = true}
	local wdvideo = {entity = item, property = 'P10', showsource = true}
	local wdmedia = wdimage
	if (wikidata.formatStatements{property = "P18", displayformat = "raw", entity= localdata.item} == nil) then
		wdmedia = wdvideo
	end
	return 	{
		type = 'images',
		imageparameters =  {'image', 'photo', 'Photo'},
		defaultimagelink = 'Aide:Insérer une image',
		sizeparameter = 'taille image',
		uprightparameter = 'upright',
		maintenancecat = 'Article à illustrer',
		captionparameter = {'légende', 'légende image', 'Légende'},
		altparameter = 'alternative image',
		wikidata =  wdmedia,
		numval = 1,
	}
end

-- Donne la date de découverte ou la date de publication
function p.date()
	local wddatedecouverte = { entity = localdata.item, property = "P575", showsource = true}
	local wddatedepublication = { entity = localdata.item, property = "P577", showsource = true}
	if wddatedecouverte and wddatedepublication then -- ne pas afficher les deux si c'est la même valeur
		if (wikidata.formatStatements{property = "P575", displayformat = "raw", entity= localdata.item} == wikidata.formatStatements{property = "P577", displayformat = "raw", entity = localdata.item}) then
			wddatedepublication = nil
		end
	end
	return {type = 'multi', 
		rows = {
			-- Date de découverte : P575
			{type = 'row', label = "Date de découverte", value = "date",  wikidata = wddatedecouverte},
			-- Date de publication : P577
			{type = 'row', label = "Date de publication", value = "date de publication", blockers = 'date', wikidata = wddatedepublication},
		},
	}
end

-- Retourne la liste des découvreurs ou inventeurs et donne leur éventuelle date de publication respective
function p.decouvreurs_dates()
	return {
		type = 'row', 
		label = "Découvreur ou inventeur", 
		plurallabel = "Découvreurs ou inventeurs", 
		value = "découvreur", 
		wikidata = {
			entity = item, 
			property = 'P61', 
			showsource = true,
			showqualifiers = 'P577',
			showdate = true
		} 
	}
end

p.maincolor = "#ddd"
p.thirdcolor = "#000"
p.parts = {
	general.title("informatique"),
	general.logo(),
	p.mainimage_ou_video(),
	{type = 'table', rows = {
			p.decouvreurs_dates(),
			p.date(),
			{type = 'row', label = "Problème lié", plurallabel = "Problèmes liés", value = "problème", wikidata = {entity = item, property = 'P31', showsource = true}},
			{type = 'row', label = "Structure des données", plurallabel = "Structures des données",value = "structure des données", property = 'P2283'},
			{type = 'row', label = "Basé sur", value = "basé sur", wikidata = {entity = item, property = 'P144', showsource = true}},
			{type = 'row', label = "À l'origine de",value = "à l'origine de", wikidata = {entity = item, property = 'P4969', showsource = true}},
	}},
	{type = 'table', title = "[[Complexité en temps]]", rows = {
			{type = 'row', label = "Pire cas", value = "temps max", wikidata = {entity = item, property = 'P3752', showsource = true}},
			{type = 'row', label = "Moyenne", value = "temps moyen", wikidata = {entity = item, property = 'P3754', showsource = true}},
			{type = 'row', label = "Meilleur cas", value = "temps min", wikidata = {entity = item, property = 'P3753', showsource = true}},
	}},
	{type = 'table', title = "[[Complexité en espace]]", rows = {
			{type = 'row', label = "Pire cas", value = "espace max", wikidata = {entity = item, property = 'P3755', showsource = true}},
			{type = 'row', label = "Moyenne", value = "espace moyen", wikidata = {entity = item, property = 'P3757', showsource = true}},
			{type = 'row', label = "Meilleur cas", value = "espace min", wikidata = {entity = item, property = 'P3756', showsource = true}},
	}},

	general.website(),
}

return p